package com.bdqn.t296.syn;

import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
public class UnsafeBank {//不安全的取钱

    public static void main(String[] args) {
        //账户
        Account account = new Account(100, "结婚基金");
        Drawing you = new Drawing(account, 50, "你");
        Drawing girlFriend = new Drawing(account, 100, "她");
        you.start();
        girlFriend.start();

    }
}

//账户
class Account {
    int money;//余额
    String name;//卡名

    public Account(int money, String name) {
        this.money = money;
        this.name = name;
    }
}

//银行：模拟取款
class Drawing extends Thread {
    Account account;//账户
    //取了多少钱
    int drawingMoney;
    //现在手里有多少钱
    int nowMoeny;

    public Drawing(Account account, int drawingMoney, String name) {
        super(name);
        this.account = account;
        this.drawingMoney = drawingMoney;
    }

    @Override
    public void run() {//取钱
        //判断有没有钱
        if (account.money - drawingMoney < 0) {
            System.out.println(Thread.currentThread().getName() + "钱不够，取不了");
        }
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        //卡内余额 = 余额 - 你取的钱
        account.money = account.money - drawingMoney;
        //你手里的钱 = 手里的钱 + 你取的钱
        nowMoeny = nowMoeny + drawingMoney;

        System.out.println(account.name + "余额为：" + account.money);

        System.out.println(Thread.currentThread().getName() + "手里的钱：" + drawingMoney);
    }
}

